package edu.hawaii.teams.halealohacli.command;

import org.wattdepot.client.WattDepotClient;

/**
 * A basic interface to handle user commands.
 * 
 * @author Branden Ogata
 * 
 */
public interface Command {

  /**
   * Gathers and returns some sort of information from the server. If any calculations must be
   * performed, do so in this method. For example, if the command is to search for the source with
   * the highest power consumption, perform the calculations in this method so that only a single
   * line need be returned. The method name could also be something better.
   * 
   * @param client A WattDepotClient to find the source in.
   * @param details String instances containing information necessary for command execution.
   * @return data A String containing the data obtained from the server. If multiple data exist,
   * places each on a new line.
   * @throws Exception Handles any problems that may occur.
   * 
   */

  public String getData(WattDepotClient client, String... details) throws Exception;
}